package pl.cezary.butler.walili.client;

import pl.cezary.butler.walili.common.IServerFacadeRemote;
import java.awt.event.ActionListener;


// <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
// #[regen=yes,id=DCE.01D745AF-7538-9EBB-8C3C-67B1910FCFDB]
// </editor-fold> 
public abstract class BaseControler implements ActionListener{

    private static IServerFacadeRemote fasada;
    
    private UserDataSource zrodlo;
    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.14DA666D-A60C-8329-F69C-77914394D622]
    // </editor-fold> 
    public BaseControler () {
    }
    
    public void connectDataSource(UserDataSource z){
        zrodlo=z;
    }

    protected final IServerFacadeRemote getFasada(){
        return fasada;
    }
    
    /** 
     * Metoda uzywana podczas logowania, nie powinna byc uzywana nigdzie poza kontrolerem logowania
     * @param f
     */
    protected final void setFasada(IServerFacadeRemote f){
        fasada = f;
    }
    
    protected final UserDataSource getZrodloDanych(){
        if(zrodlo== null)throw new IllegalStateException("Nie podlaczono kontrolera do zrodla danych");
        return zrodlo;
    }
}

